动态库.lib与.dll关系、visual studio工程库路径配置浅析

您所在的位置:网站首页 vs dll路径配置 动态库.lib与.dll关系、visual studio工程库路径配置浅析

动态库.lib与.dll关系、visual studio工程库路径配置浅析

#动态库.lib与.dll关系、visual studio工程库路径配置浅析| 来源: 网络整理| 查看: 265

背景:学习vs生成动态库一段时间以来,一直对动态库.dll 与.lib的关系,vs工程配置半知半解,直到最近有了更进一步的理解,若有错误,欢迎指正。 平台:windows

1.动态库.lib与.dll关系

我们知道,通过工程生成的动态库并不只有.dll文件,还有.lib文件。其他地方对这点的解释是.lib文件保存了函数信息以及其在dll中的位置。那么现在有一个问题,生成的.lib和.dll文件是否可以改名?

结论,.lib可以改,.dll不可以改。

为什么?

因为与.lib名字相关的只有工程配置中链接器的输入,如果lib文件名字改了,只需要把工程中对应的名字也改了,其他并没有什么影响。

但为什么dll名字不能改,我没有查看过lib文件内容,但是根据之前的介绍“lib存的是dll的函数信息以及其在dll的位置”,不难推理出lib一定是保存了dll文件的名字,且程序在运行时通过dll名字来找到对应的dll,再找到所调用的函数,那么如果dll名字改了,是不是就找不到dll呢。

2.visual studio工程库路径配置

新手刚开始配置,没有经验,只能照着网上的文章来配置,但是网上的很多文章往往少说了一些内容,这就很容易导致后续产生问题。

网上的大多教程为以下三步:

在 c/c++附加包含目录配置头文件路径在链接器-附加库目录 配置lib文件路径在输入-附加依赖项添加lib文件名

那么dll文件路径如何配置?

一般来讲,dll是与lib文件放在一起的,但如果只是执行上面三步,程序大概率不会运行。有人也许会疑问,我的dll与lib放在一起呀,怎么会找不到dll呢?

其实,dll文件与lib在不在一起无所谓,因为程序运行时,是在当前运行输出路径中(.exe所在路径)寻找dll文件,也就是说,配置dll路径就是

把dll文件复制到当前程序运行输出路径或者把当前程序输出路径设置为dll所在路径

既然dll不能随便改名字,可能有人问我就想改怎么办?

这需要重新编译生成库文件。

以上。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3